package io.datastream;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import org.junit.Test;

public class StreamDemo {
	@Test
	public void input() {
		try {
			//1.由文件构建一个输入流
			File file = new File("b.txt");
			FileInputStream fis = new FileInputStream(file);
			//2.直接用文件名
			FileInputStream fis2 = new FileInputStream("b.txt");
//			//3.1 读取，读取到的字节
//			int ch;
//			// 一个bytey一个byte读取，读到文件尾-1
//			while((ch = fis2.read()) != -1) {
//				System.out.print((char)ch);
//			}
			// 3.2 全部读取
			byte[] arr = new byte[fis2.available()];
			fis2.read(arr);
			// 4.关闭流
			fis2.close();
			System.out.println(new String(arr));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@Test
	public void output() {
		
		try {
			// 1.如果文件不存在，可以自动创建.文件如果存在覆盖写
			// 如果想追加往文件里写需要使用第二个参数true
			FileOutputStream fos = new FileOutputStream("c.txt", true);
			// 2.1 写出去一个字节
			fos.write('a');
			// 2.2 写出一个字节数组
			fos.write("哈哈".getBytes());
			// 3.刷新缓存
			fos.flush();
			// 4.关闭流
			fos.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

}
